/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Negocio.Contenedor;

import Datos.Orden;
import java.util.ArrayList;
import java.util.Collections;
import javax.swing.JPanel;

/**
 *
 * @author Marco
 */
public class ListaOrdenes {

    private ArrayList<Orden> listaOrdenes = new ArrayList<Orden>();

    public ListaOrdenes() {
    }

    public ArrayList<Orden> getListaOrdenes() {
        return listaOrdenes;
    }

    public void setListaOrdenes(ArrayList<Orden> listaOrdenes) {
        this.listaOrdenes = listaOrdenes;
    }

    public void cargar(int idOrden, int idCuenta, int codMesa, int mesa, int nProducto, int nTipo, int nSalonero, int nBailarina){
                Orden nuevaOrden = new Orden(idOrden, idCuenta, codMesa, mesa, nProducto, nTipo, nSalonero, nBailarina);
                listaOrdenes.add(nuevaOrden);
    }

    public int size(){
        return listaOrdenes.size();
    }

    public JPanel getPanelElemento(int elemento){
        return listaOrdenes.get(elemento).getPanelOrden();
    }

    public void ordenarLista() {
        Collections.sort(listaOrdenes);
    }

    public void reset() {
        listaOrdenes.removeAll(listaOrdenes);
    }

    public void asignarPaneles(JPanel[] paneles) {
        for (int i = 0; i < listaOrdenes.size(); i++) {
            listaOrdenes.get(i).setPanelOrden(paneles[i]);
        }
    }

    public boolean comparaIdCuenta(int idCuenta, int i) {
        if(listaOrdenes.get(i).getnCuenta() == idCuenta)
            return true;
        else
            return false;
    }

    public int sizeOrdenesDeCuenta(int idCuenta){
        int cont = 0;
        for (int i = 0; i < listaOrdenes.size(); i++) {
            if(listaOrdenes.get(i).getnCuenta() == idCuenta)
               cont++;
        }
        return cont;
    }

    public int[] ordenesDeCuenta(int idCuenta) {
        int cont [] = new int [sizeOrdenesDeCuenta(idCuenta)];
        int c = 0;
        for (int i = 0; i < listaOrdenes.size(); i++) {
            if(listaOrdenes.get(i).getnCuenta() == idCuenta){
               cont[c] = listaOrdenes.get(i).getnProducto();
               c++;
            }
        }
        return cont;
    }

    public int getInfoProducto(int i) {
            return listaOrdenes.get(i).getnProducto();
    }

    public int cantidadProductoEnCuenta(int producto, int tipoOrden) {
        int cont = 0;
        for (int i = 0; i < listaOrdenes.size(); i++) {
            Orden orden = listaOrdenes.get(i);
            if( (orden.getnProducto() == producto) && (orden.getnTipo() == tipoOrden))
                cont++;
        }
        return cont;
    }

    public int getCodigoProducto(int i) {
        return listaOrdenes.get(i).getnProducto();
    }

    public int tipoOrden(int i) {
        return listaOrdenes.get(i).getnTipo();
    }

    public int getTipo(int i) {
        return listaOrdenes.get(i).getnTipo();
    }

    public int getOrdenProductoTipo(int idProducto, int tipo) {
        for (int i = 0; i < listaOrdenes.size(); i++) {
            Orden orden = listaOrdenes.get(i);
            if( (orden.getnProducto() == idProducto) && (orden.getnTipo() == tipo))
                return orden.getIdOrden();
        }
        return -1;
    }
}
